package br.com.fiap.vendas.business.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

import br.com.fiap.vendas.business.vo.UsuarioVO;

@Entity(name = "usuario")
@Table(name = "USUARIO")
public class UsuarioEntity implements Serializable {

	private static final long serialVersionUID = 1624685417298531778L;

	public UsuarioEntity() {
	}

	public UsuarioEntity(UsuarioVO usuario) {
		this(usuario.getLogin(), usuario.getSenha(), usuario.getGrupo(),
				usuario.getPerfil(), usuario.getNome(), usuario.getBloqueado().equals("S"),
				new Date());
	}

	public UsuarioEntity(String login, String senha, String grupo,
			String perfil, String nome, Boolean bloqueado, Date ultimoAcesso) {
		this();
		this.login = login;
		this.senha = senha;
		this.grupo = grupo;
		this.perfil = perfil;
		this.nome = nome;
		this.bloqueado = bloqueado;
		this.ultimoAcesso = ultimoAcesso;
	}

	@Id
	@Column(name = "login")
	private String login;

	@Column(name = "nome")
	private String nome;

	@Column(name = "flg_bloqueio")
	private Boolean bloqueado;

	@Column(name = "grupo")
	private String grupo;

	@Column(name = "perfil")
	private String perfil;

	@Column(name = "senha")
	private String senha;

	// @Temporal(TemporalType.TIMESTAMP)
	@Column(name = "ultimo_acesso")
	private Date ultimoAcesso;

	public String getLogin() {
		return this.login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public Boolean getBloqueado() {
		return this.bloqueado;
	}

	public void setBloqueado(Boolean bloqueado) {
		this.bloqueado = bloqueado;
	}

	public String getGrupo() {
		return this.grupo;
	}

	public void setGrupo(String grupo) {
		this.grupo = grupo;
	}

	public String getPerfil() {
		return this.perfil;
	}

	public void setPerfil(String perfil) {
		this.perfil = perfil;
	}

	public String getSenha() {
		return this.senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public Date getUltimoAcesso() {
		return this.ultimoAcesso;
	}

	public void setUltimoAcesso(Date ultimoAcesso) {
		this.ultimoAcesso = ultimoAcesso;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public  UsuarioVO buildUsuarioVO(){
		return new UsuarioVO(login, senha, nome, grupo, bloqueado.toString(), perfil);
		
	}
}
